﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AgileSaude.Entities;
using AgileSaude.Business;
using FBS.Framework;

namespace AgileSaude.Web.Pacientes
{
    public partial class MinhasInformacoes : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Resultado resultado = new Resultado();
                CidadeEntities FiltroCidade = new CidadeEntities();

                //ddlCidade.DataTextField = "Nome";
                //ddlCidade.DataValueField = "IdCidade";

                //ddlCidade.DataSource = new CidadeFacade().Listar(FiltroCidade, ref resultado).OrderBy(x => x.Nome);
                //ddlCidade.DataBind();

                UsuarioEntities usuario = getUsuarioLogado();
                if (usuario != null)
                {
                    txtCPF.Text = usuario.CPF;
                    txtNome.Text = usuario.Nome;
                    txtEmail.Text = usuario.Email;
                    txtEndereco.Text = usuario.Endereco;
                    txtBairro.Text = usuario.Bairro;
                    //ddlCidade.SelectedValue = usuario.idCidade.ToString();
                    txtCidade.Text = usuario.Cidade;
                    txtCEP.Text = usuario.CEP;

                    txtTelResidencial.Text = usuario.TelResidencial;
                    txtDDDResidencial.Text = usuario.DDDResidencial;
                    txtTelComercial.Text = usuario.TelComercial;
                    txtDDDComercial.Text = usuario.DDDComercial;
                    txtTelCelular.Text = usuario.TelCelular;
                    txtDDDCelular.Text = usuario.DDDCelular;
                    if (usuario.DataNasc.HasValue)
                        txtDtNasc.Text = usuario.DataNasc.Value.ToString("dd/MM/yyyy");
                    txtRG.Text = usuario.RG;
                    txtProfissao.Text = usuario.Proissao;
                    txtUF.Text = usuario.UF;
                    txtNumero.Text = usuario.Numero;
                    txtComplemento.Text = usuario.Complemento;
                }
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            Resultado resultado = new Resultado();
            string msgConfirmacao = string.Empty;

            if (Page.IsValid)
            {

                try
                {
                    UsuarioEntities usuario = getUsuarioLogado();
                    resultado.Sucesso = true;

                    if (txtNovaSenha.Text != "")
                    {
                        if (new Criptografia("12345").Codificar(txtSenhaAntiga.Text) != usuario.Senha)
                        {
                            resultado.Sucesso = false;
                            Mensagem msg = new Mensagem();
                            msg.Descricoes.Add("Senha Antiga não confere!");
                            msg.Campo = "Senha Antiga";
                            resultado.Mensagens.Add(msg);
                        }
                        else if (txtNovaSenha.Text != txtConfirmarSenha.Text)
                        {
                            resultado.Sucesso = false;
                            Mensagem msg = new Mensagem();
                            msg.Descricoes.Add("Senha confirmada não confere!");
                            msg.Campo = "Confirmacao Senha";
                            resultado.Mensagens.Add(msg);
                        }
                        else
                        {
                            usuario.Senha = new Criptografia("12345").Codificar(txtNovaSenha.Text);
                        }
                    }

                    if (resultado.Sucesso)
                    {
                        usuario.Nome = txtNome.Text;
                        usuario.Email = txtEmail.Text;
                        usuario.Endereco = txtEndereco.Text;
                        usuario.Bairro = txtBairro.Text;
                        //usuario.idCidade = int.Parse(ddlCidade.SelectedValue);
                        usuario.Cidade = txtCidade.Text;
                        usuario.CEP = txtCEP.Text;

                        usuario.TelResidencial = txtTelResidencial.Text;
                        usuario.DDDResidencial = txtDDDResidencial.Text;
                        usuario.TelComercial = txtTelComercial.Text;
                        usuario.DDDComercial = txtDDDComercial.Text;
                        usuario.TelCelular = txtTelCelular.Text;
                        usuario.DDDCelular = txtDDDCelular.Text;
                        usuario.DataNasc = DateTime.Parse(txtDtNasc.Text);
                        usuario.RG = txtRG.Text;
                        usuario.Proissao = txtProfissao.Text;
                        usuario.UF = txtUF.Text;
                        usuario.Numero = txtNumero.Text;
                        usuario.Complemento = txtComplemento.Text;

                        UsuarioFacade userFacade = new UsuarioFacade();
                        resultado = userFacade.Alterar(usuario);

                        usuario = userFacade.GetUsuario(usuario.idUsuario);

                        Session["UserLogado"] = usuario;

                        txtSenhaAntiga.Text = "";
                        txtNovaSenha.Text = "";
                        txtConfirmarSenha.Text = "";
                    }
                }
                catch (Exception ex)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "ResultadoConfirmação", "alert('" + ex.Message + "'); location.href='MinhasInformacoes.aspx';", true);
                }

                if (resultado.Sucesso)
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "ResultadoConfirmação", "alert('Gravado com sucesso!'); location.href='MinhasInformacoes.aspx';", true);
                }
                else
                {
                    ((Label)Master.FindControl("lblMensagem")).Text = resultado.Mensagens[0].Descricoes[0];
                    ((Label)Master.FindControl("lblMensagem")).CssClass = "failureNotification";
                    ((Label)Master.FindControl("lblMensagem")).Visible = true;
                }
            }
        }

    }
}